/* eslint-disable no-useless-escape */
const numFormat = (val) => { // 数字转化为加逗号的字符串
  const reg = /^([\d,\.])*$/;
  if (val && reg.test(val)) {
    return val.toLocaleString('zh', { style: 'decimal' });
  } else {
    return val;
  }
};
const phoneFormat = (val) => { // 11位手机号转化加空格的字符串
  if (val) {
    return val.replace(/(?=(\d{4})+$)/g, ' ');
  } else {
    return val;
  }
};
const idcardFormat = (val) => { // 18位身份证号隐藏
  if (val) {
    return val.slice(0, 6) + '********' + val.slice(14, 18);
  } else {
    return val;
  }
};
const idFormat = (val) => { // 设备id过长的隐藏
  if (val) {
    const id = String(val);
    if (id.length > 5) {
      return `...${id.slice(id.length - 5, id.length)}`;
    } else {
      return id;
    }
  } else {
    return val;
  }
};

const nameFormat = (val) => { // 名称过长的隐藏
  if (val) {
    const name = String(val);
    if (name.length > 10) {
      return `${name.slice(0, 10)}...`;
    } else {
      return name;
    }
  } else {
    return val;
  }
};

const addrFormat = (val) => { // text过长的隐藏
  if (val) {
    const name = String(val);
    if (name.length > 5) {
      return `${name.slice(0, 5)}...`;
    } else {
      return name;
    }
  } else {
    return val;
  }
};

const dataFormat = (value) => {
  // 过滤器，数字长度超过4位数，添加分隔符
  if (typeof value !== 'number') {
    return value;
  }
  const mark = ','; // 加什么分隔符
  const counts = 3; // 几分位 3表示千分位
  value = value.toString().split('.');
  var tempAry = value[0].split('').reverse();
  var res = [];
  for (var i = 0, len = tempAry.length; i < len; i++) {
    if (i % counts === 0 && i !== 0) {
      res.push(mark);
    }
    res.push(tempAry[i]);
  }
  res.reverse();
  if (value[1]) {
    res = res.join('').concat('.' + value[1]);
  } else {
    res = res.join('');
  }
  return res;
};
export { numFormat, phoneFormat, idcardFormat, idFormat, nameFormat, addrFormat, dataFormat };
